package it.orma.iridehr.validators.opportunita;

import java.util.List;

import it.orma.iridehr.entities.Opportunita;
import it.orma.iridehr.entities.azienda.Azienda;
import it.orma.iridehr.repository.ricercaAziende.RicercaAziendeRepository;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.binding.message.MessageBuilder;
import org.springframework.binding.message.MessageContext;
import org.springframework.binding.validation.ValidationContext;
import org.springframework.stereotype.Component;

@Component
public class OpportunitaValidator {
	
	public OpportunitaValidator() {
		
	}
	
	@Autowired
	private RicercaAziendeRepository ricercaAziendeRepository;

	
	public void validate(Opportunita opp, ValidationContext context) {
		MessageContext messages = context.getMessageContext();
		if (opp.getAzienda()!=null){
			List<Azienda> azz = ricercaAziendeRepository.ricercaAzienda(opp.getAzienda().getNome());
			if (azz==null||azz.size()==0){
				messages.addMessage(new MessageBuilder().error().source("azienda.nome")
						.code("error.azienda.assente").build());				
			}
		
		}else{
			messages.addMessage(new MessageBuilder().error().source("azienda.nome")
					.code("error.campo.nonvalido").build());	
		}
		if(opp.getNome()==null){
			messages.addMessage(new MessageBuilder().error().source("nome")
					.code("error.campo.nonvalido").build());	
		}
		
	}

}
